package org.linloong.modules.apis.common.service;// UserService.java
import cn.dev33.satoken.stp.SaTokenInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.linloong.modules.apis.common.dto.UserLoginDTO;
import org.linloong.modules.apis.common.dto.UserRegisterDTO;
import org.linloong.modules.apis.common.entity.Permission;
import org.linloong.modules.apis.common.entity.Role;
import org.linloong.modules.apis.common.entity.User;

import java.util.List;

public interface UserService extends IService<User> {
    /**
     * 用户注册
     */
    boolean register(UserRegisterDTO userRegisterDTO);
    
    /**
     * 用户登录
     */
    SaTokenInfo login(UserLoginDTO userLoginDTO);
    
    /**
     * 用户登出
     */
    void logout();
    
    /**
     * 根据用户名获取用户信息
     */
    User getByUsername(String username);
    
    /**
     * 获取用户角色列表
     */
    List<Role> getUserRoles(Long userId);
    
    /**
     * 获取角色权限列表
     */
    List<Permission> getRolePermissions(Long roleId);
}
